﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using IM.gerenciadores;
using InterfaceRemota;
using Gerenciamento;
using System.Threading;
using System.Runtime.CompilerServices;

namespace IM
{
    public partial class FormTeste : Form
    {
        private IServidor server;
        private IServidor getServidor()
        {
            if (server == null)
            {
                server = GerenciadorDeConexaoCliente
                    .configuraServidor("192.168.0.2", "9000", 8080, "Gerenciamento");
            }
            return server;
        }

        private FormImpl gerenciador;
        public FormImpl Gerenciador
        {
            get {
                if (gerenciador == null)
                {
                    gerenciador = new FormImpl();
                }
                return gerenciador;
            }
            set { gerenciador = value; }
        }

        public FormTeste()
        {
            InitializeComponent();
            Gerenciador.abreForm += new FormImpl.AbreFormEvent(evento_abre_form);
        }
        
        private void button1_Click(object sender, EventArgs e)
        {
            getServidor().abreForm(Gerenciador);
        }

        delegate void Callback(FormTeste form);

        private void evento_abre_form()
        {
            Control c = new Form();
            c.Show();
        }
    }
}
